package array

// (number): 返回找到元素的 索引值（index），否则返回 -1。是从右到左的迭代集合array中的元素。
func FindLastIndex(array []T, predicate func(value T, index int, array []T) bool, fromIndex ...int) int {
	startIndex := len(array) - 1
	if len(fromIndex) > 0 {
		startIndex = fromIndex[0]
	}
	if startIndex > len(array)-1 {
		startIndex = len(array) - 1
	}
	if startIndex < 0 {
		return -1
	}
	var ret = -1
	for i := startIndex; i >= 0; i-- {
		if predicate(array[i], i, array) {
			ret = i
			break
		}
	}
	return ret
}
